fn main() {
    let number = 13;
    // TODO ^ try different values for `number`

    println!("tell me about: {}", number);
    match number {
        // match a single value
        1 => println!("One!"),
        // match several values
        2 | 3 | 5 | 7 | 11 | 13 => println!("This is a prime"),
        // TODO ^ try adding 13 to the list of prime values
        // match an inclusive range
        13..=19 => println!("A teen"),
        // handle the rest of cases
        _ => println!("Ain't special"),
        // TODO ^ try commenting out this catch-all arm
    }

    let boolean = true;
    let binary = match boolean {
        true => 1,
        false => 0,
        // either add or not add the following statement will pass the compilation
        // but if we add the statement, compiler will report a warning:
        // warning: unreachable pattern
        // _ => -1,
    };
    println!("{} -> {}", boolean, binary);
}